Shared Tools
Shared Tools allow multiple applications, agents, and workflows within a BindAI project to reuse the same functionality. Instead of implementing identical tools in every application, a tool can be registered once at the project level and made available wherever it is needed. This promotes consistency, maintainability, and code reuse.What are Shared Tools?
A shared tool is a reusable function registered with the project. Conceptually:Why Share Tools?
Without shared tools, projects often duplicate functionality. For example:Project Tool Registry
Projects maintain a centralized tool registry.Registering a Tool
A tool is registered once. Conceptually:Using Shared Tools
Agents can invoke shared tools during execution.Tool Reuse
Multiple applications can share the same tool.Typical Shared Tools
Common examples include:- database queries
- web search
- email sending
- calendar integration
- file access
- document retrieval
- internal APIs
- weather services
- CRM integration
Shared Tools vs Local Tools
Some tools belong only to a specific application.
Choose the appropriate scope based on reuse.
Versioning
Because many agents may depend on the same tool, updates should be made carefully. Good practices include:- maintaining backward compatibility
- testing before deployment
- documenting interface changes
- avoiding unnecessary breaking changes
Tool Organization
As projects grow, organize shared tools into categories. Example:Security
Shared tools often access sensitive systems. Examples include:- databases
- cloud services
- internal APIs
- financial systems
- validating inputs
- limiting permissions
- handling errors safely
- avoiding exposure of secrets
- logging important operations
Performance
Frequently used shared tools should be designed for efficiency. Consider:- caching
- connection pooling
- batching requests
- minimizing network calls
- reducing duplicate work
Best Practices
- Register reusable tools at the project level.
- Keep tool interfaces stable.
- Make tools focused on a single responsibility.
- Validate inputs before execution.
- Handle failures gracefully.
- Document expected inputs and outputs.
- Organize tools into logical modules.
